/*
 * PlugInGUIInterface.java
 *
 * Created on 25. November 2005, 10:49
 *
 */

package info.chrm.jtalker;

import java.lang.reflect.Method;

/**
 * @author chrmac@gmx.de
 */
public interface JTalkerClientPlugInInterface {
    /** Gets the main PlugIn Frame */
    public javax.swing.JFrame getMainFrame();

    /** Gets settings Window for this Plugin */
    public javax.swing.JFrame getSettingsFrame();

    /** Gets an icon for clients toolbar */
    public javax.swing.ImageIcon getIcon();

    /** Gets the plugin name */
    public String getName();

    /** Gets the description */
    public String getDescription();

    /** Sets the connector for accessing the client application */
    public boolean setParentObject(JTalkerClientPluginConnector _connector);   

    /** Gets available command (received from server) methods in this PlugIn */
    public Method[] getCommandMethods();
    
    /** Gets available user specific methods in this PlugIn */
    public Method[] getUserMethods();

    /** Will be called while unloading the plugin - free all ressources here */
    public void unload();
}
